ServerEvents.tick(event => {
    if ((event.server.tickCount + 1) % 10 !== 0) return; /* [perf] 10 tick毎に間引き */
    const server = event.server
    const bossType = 'touhou_little_maid_spell:stellar_witch'              // 実際のID (例: 'modid:boss') に置き換え
    const bossTag = 'bossname_title_shown'

    server.entities.forEach(boss => {
        if (boss.type !== bossType) return

        // 元の nbt=!{BossFight:0b} と同じ条件(BossFight が 0b なら非アクティブ扱い)
        const nbt = boss.nbt
        const inactive = nbt.contains('BossFight') && nbt.getByte('BossFight') === 0
        const target = boss.target           // Mob#getTarget()
        const hasPlayerTarget = !inactive && target != null && target.player

        if (hasPlayerTarget) {
            if (boss.tags.contains(bossTag)) return   // 表示済み
            boss.addTag(bossTag)

            const name = target.username
            server.runCommandSilent(
                `title ${name} subtitle {"text":"二つ名","color":"#FFFFFF","italic":true}`
            )
            server.runCommandSilent(
                `title ${name} title {"text":"ボス名","color":"#FFFFFF","bold":true}`
            )
        } else {
            // 敵対状態が解けたらタグを外し、次に敵対したときにまた表示できるようにする
            if (boss.tags.contains(bossTag)) boss.removeTag(bossTag)
        }
    })
});